package com.whmskj.xjlhsc.mapper;

import com.whmskj.xjlhsc.controller.vo.EnergyTrendVO;
import com.whmskj.xjlhsc.controller.vo.EnergyTypeRatioVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: Sakura
 * @Date: 2025/8/13 14:19
 * @Version: v1.0.0
 * @Description: 能耗统计相关 Mapper
 **/
@Mapper
public interface EnergyMapper {
    /**
     * 区间内总能耗（按天聚合表）
     */
    Double getTotalEnergyBetween(@Param("startDate") LocalDateTime startDate,
                                 @Param("endDate") LocalDateTime endDate);

    /**
     * 区间内各工序能耗（按工序聚合）
     */
    List<EnergyTypeRatioVO> getEnergyByProcessBetween(@Param("startDate") LocalDateTime startDate,
                                                      @Param("endDate") LocalDateTime endDate);

    /**
     * 最近N日能耗趋势（含起止日期）
     */
    List<EnergyTrendVO> getRecentDaysEnergy(@Param("startDate") LocalDateTime startDate,
                                            @Param("endDate") LocalDateTime endDate);

    /**
     * 最近N个月能耗趋势（含起止日期）
     */
    List<EnergyTrendVO> getRecentMonthsEnergy(@Param("startDate") LocalDateTime startDate,
                                              @Param("endDate") LocalDateTime endDate);

    /**
     * 最近N年能耗趋势（含起止日期）
     */
    List<EnergyTrendVO> getRecentYearsEnergy(@Param("startDate") LocalDateTime startDate,
                                             @Param("endDate") LocalDateTime endDate);
}
